#define _CRT_SECURE_NO_WARNINGS 1
//#include<iostream>
//#include<queue>
//#include<vector>
//using namespace std;
//
//int n, op, x;
//
//
//int main()
//{
//	vector<int> ret;
//	priority_queue<int,vector<int>,greater<int>> pq;
//	cin >> n;
//	for (int i = 1; i <= n; i++)
//	{
//		cin >> op;
//		if (op == 1)
//		{
//			cin >> x;
//			pq.push(x);
//		}
//		else if (op == 2)
//		{
//			ret.push_back(pq.top());
//		}
//		else if (op == 3)
//		{
//			pq.pop();
//		}
//	}
//
//	for (auto& x : ret)
//	{
//		cout << x << endl;
//	}
//	return 0;
//}

//#include<iostream>
//#include<set>
//using namespace std;
//
//int n, k, val;
//int main()
//{
//    set<int> s;
//    cin >> n >> k;
//    for (int i = 0; i < n; i++)
//    {
//        cin >> val;
//        s.insert(val);
//    }
//
//    auto it = s.begin();
//    while (k)
//    {
//        it++;
//        k--;
//    }
//    cout << *it << endl;
//
//    return 0;
//}

//#include<queue>
//using namespace std;
//
//int n, k;
//int main()
//{
//    int sum = 0;
//    cin >> n >> k;
//    vector<int> data(n);
//    priority_queue<int> pq;
//    for (auto& x : data)
//    {
//        cin >> x;
//        if (x % 2 == 0)
//        {
//            pq.push(x);
//        }
//    }
//
//    for (int i = 0; i < k; i++)
//    {
//        for (auto& x : data)
//        {
//            if (x == pq.top())
//            {
//                x /= 2;
//                pq.pop();
//                if (x / 2 == 0)
//                {
//                    pq.push(x);
//                }
//                break;
//            }
//        }
//    }
//
//    for (auto& x : data)
//    {
//        sum += x;
//    }
//    cout << sum;
//
//
//    return 0;
//}

//#include<iostream>
//using namespace std;
//#include<vector>
//#include<algorithm>
//vector<int> _ret;
//int n, m;
//int x = 1;
//
//int main()
//{
//	cin >> n >> m;
//	int count = m;
//	vector<vector<int>> _para(n, vector<int>(3));
//	for (int i = 0; i < n; i++)
//	{
//		cin >> _para[i][0] >> _para[i][1] >> _para[i][2];
//	}
//
//	while (count > 0)
//	{
//		for (int j = 0; j < _para.size(); j++)
//		{
//			
//			_ret.push_back(_para[j][0] * x * x
//				+ _para[j][1] * x + _para[j][2]);
//		}
//		count -= n;
//		x++;
//	}
//
//	sort(_ret.begin(), _ret.end());
//	for (int i = 0; i < m; i++)
//	{
//		cout << _ret[i] << " ";
//	}
//
//	return 0;
//}